/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package DAO;
import java.sql.*;
import Fachada.Fachada;
import LogicaNegocio.*;
import java.util.Vector;

/**
 *
 * @author GEMA
 */
public class DAOOrdenDeEntrega
{
    Fachada fachada;

    public DAOOrdenDeEntrega()
    {
        fachada = new Fachada();
    }

    public int guardarOrdenDeEntrega(OrdenDeEntrega orden)
    {
        String sql_guardar;
        sql_guardar="INSERT INTO OrdenEntrega VALUES" + "('"+ orden.getCodigoEntrega()+"','"+orden.getEstadoEntrega()+"','"+
                orden.getDireccionEntrega()+"','"+orden.getTelefonoEntrega()+"','"+orden.getCcEmpleado()+"')";

        try
        {
            Connection conexion= fachada.ConexionBaseDatos();
            Statement sentencia=conexion.createStatement();
            int numFilas= sentencia.executeUpdate(sql_guardar);
            conexion.close();
            return numFilas;
        }
        catch(SQLException e)
        {
            System.out.println(e);
        }
        catch(Exception e)
        { System.out.println(e);
        }
        return -1;
    }

    public String consultarMayorCodigo() {
        String sql_query = "SELECT MAX(codigo_entrega) FROM OrdenEntrega ORDER BY codigo_entrega";
        try
        {
            Connection conexion= fachada.ConexionBaseDatos();
            Statement sentencia=conexion.createStatement();
            ResultSet tabla = sentencia.executeQuery(sql_query);
            String maximoCodigo = null;
            while(tabla.next())
            {
               maximoCodigo = tabla.getString(1);
            }
            conexion.close();
            return maximoCodigo;
        }
        catch(SQLException e)
        {
            System.out.println(e);
        }
        return null;
    }

    public OrdenDeEntrega consultarOrdenEntrega(String id) {
        String sql_query = "SELECT * FROM OrdenEntrega WHERE codigo_entrega = '" + id + "'";
        try
        {
            Connection conexion= fachada.ConexionBaseDatos();
            Statement sentencia=conexion.createStatement();
            ResultSet tabla = sentencia.executeQuery(sql_query);
            OrdenDeEntrega orden = null;
            while(tabla.next())
            {
               orden = new OrdenDeEntrega(tabla.getString(1), tabla.getString(2), tabla.getString(3), tabla.getString(4), tabla.getString(5));
            }
            conexion.close();
            return orden;
        }
        catch(SQLException e)
        {
            System.out.println(e);
        }
        return null;
    }

    public Vector<OrdenDeEntrega> consultarOrdenesEntrega(String cc_empleado) {
        String sql_query = "SELECT * FROM OrdenEntrega WHERE cc_empleado = '" + cc_empleado + "'";
        Vector<OrdenDeEntrega> ordenes = new Vector<OrdenDeEntrega>();
        try
        {
            Connection conexion= fachada.ConexionBaseDatos();
            Statement sentencia=conexion.createStatement();
            ResultSet tabla = sentencia.executeQuery(sql_query);
            
            while(tabla.next())
            {
               OrdenDeEntrega orden = new OrdenDeEntrega(tabla.getString(1), tabla.getString(2), tabla.getString(3), tabla.getString(4), tabla.getString(5));
               ordenes.addElement(orden);
            }
            conexion.close();
            System.out.println("Conexion cerrada");
            return ordenes;
        }
        catch(SQLException e)
        {
            System.out.println(e);
        }
        return null;
    }

    public int modificarEstadoOrden(String id, String estado)
    {
        String sql_guardar;
        sql_guardar="UPDATE OrdenEntrega SET estado_entrega = '" + estado + "' WHERE codigo_entrega = '" + id +"'";

        try
        {
            Connection conexion= fachada.ConexionBaseDatos();
            Statement sentencia=conexion.createStatement();
            int numFilas= sentencia.executeUpdate(sql_guardar);
            conexion.close();
            return numFilas;
        }
        catch(SQLException e)
        {
            System.out.println(e);
        }
        catch(Exception e)
        { System.out.println(e);
        }
        return -1;
    }
}
